package main

import "fmt"

func main() {
	var arr1 [3]bool
	var arr2 [5]int
	// 打印该数组的格式
	fmt.Printf("arr1:%T arr2:%T\n", arr1, arr2)

	// 给数组初始化方式一
	arr1 = [3]bool{true, true, true}
	arr2 = [5]int{0, 1, 2, 3, 4}

	// 根据初始值自动推断数组的长度
	// arr3 := [6]int{0, 1, 2, 3, 4, 5}
	arr4 := [...]int{0, 1, 2, 3, 4, 5}
	fmt.Printf("%T\n",arr4)

	// 指定索引上的值
	arr5 := [4]int{0:1,3:2}
	fmt.Println(arr5)

	// 数组的遍历 len(citys)=数组的长度，相当于java中的array.size()
	citys := [...]string{"北京","广州","深圳"}
	for i:=0 ; i<len(citys) ; i++{
		fmt.Printf("%v %v\n",citys[i],len(citys))
	}
	fmt.Println()

	// for range循环
	for i,v :=range citys{
		fmt.Println(i,v)
	}

	// 多维数组 eg：[[北京 上海] [广州 深圳] [成都 重庆]]
	var arr6 [3][2]int
	arr6 = [3][2]int{
		[2]int{1,2},
		[2]int{3,4},
		[2]int{4,5},
	}

	fmt.Println(arr6)
	a := [3][2]string{
		{"北京", "上海"},
		{"广州", "深圳"},
		{"成都", "重庆"},
	}
	for _, v1 := range a {
		for _, v2 := range v1 {
			fmt.Printf("%s\t", v2)
		}
		fmt.Println()
	}
	fmt.Println()
	for i :=0 ; i<len(arr6);i++{
		for _,v :=range arr6[i]{
			fmt.Printf("%d\t",v)
		}
	}
}


